package com.ymatou.iapi.trading.operate2.parameter.vo;

import java.math.BigDecimal;

import com.ymatou.iapi.trading.operate2.parameter.enums.BondedAreaEnum;
import com.ymatou.iapi.trading.operate2.parameter.enums.LogisticsTypeEnum;
import com.ymatou.iapi.trading.operate2.parameter.enums.PriceTypeEnum;
import com.ymatou.iapi.trading.operate2.parameter.enums.ProductRefundChannelEnum;
import com.ymatou.iapi.trading.operate2.parameter.enums.SalesTypeEnum;
import com.ymatou.iapi.trading.operate2.parameter.enums.StockStatusEnum;

/**
 * 订单里商品项
 *
 */
public class OrderItemVo {

	private static final long serialVersionUID = -1835126454024646839L;

	// 商品ID
	private String productId;

	// 商品规格ID
	private String catalogId;

	// 备货状态
	private StockStatusEnum stockStatus;

	// 商品数量
	private int productNum;

	// 一级目录ID
	private long firstCategoryId;

	// 二级目录ID
	private long secondCategoryId;

	// 三级目录ID
	private long thirdCategoryId;

	// 商品品牌ID
	private long brandId;

	//商品图片Url
	private String pictureUrl;

	//商品属性信息(按JSON格式存储，如--颜色:黑色,尺寸:XXS)
	private String property;

	//商品名称
	private String productName;

	//外部sku
	private String sku;

	// 商品备案号
	private String productRecordNo;

	// 商品销售类型
	private SalesTypeEnum salesType;

	// 商品成交价
	private BigDecimal productPrice;

	// 商品原价
	private BigDecimal originalPrice;

	// 成交价类型
	private PriceTypeEnum priceType;

	// 关税承担类型(0-卖家承担 1-买家承担)
	private int tariffType;

	// 物流类型
	private LogisticsTypeEnum logisticsType;

	// 保税区
	private BondedAreaEnum bondedArea;

	// 商品退货渠道
	private ProductRefundChannelEnum productRefundChannel;

	// 商品活动信息
	private ActivityVo activity;

	// 该商品是否免运费
	private boolean freightFree;

	// 是否支持7天无条件退货
	private boolean supportsRtnWithoutReason;

	//是否是预售商品
	private boolean preSale;

	//商品快照版本
	private String productVer;

	//是否psp商品 （psp: prefer sale promotion）
	private boolean pspProduct;

	//运费
	private BigDecimal freight;

	/**
	 * 是否是组合商品
	 */
	private boolean subProduct;

	public String getProductId() {
		return productId;
	}

	public void setProductId(String productId) {
		this.productId = productId;
	}

	public String getCatalogId() {
		return catalogId;
	}

	public void setCatalogId(String catalogId) {
		this.catalogId = catalogId;
	}

	public StockStatusEnum getStockStatus() {
		return stockStatus;
	}

	public void setStockStatus(StockStatusEnum stockStatus) {
		this.stockStatus = stockStatus;
	}

	public int getProductNum() {
		return productNum;
	}

	public void setProductNum(int productNum) {
		this.productNum = productNum;
	}

	public long getFirstCategoryId() {
		return firstCategoryId;
	}

	public void setFirstCategoryId(long firstCategoryId) {
		this.firstCategoryId = firstCategoryId;
	}

	public long getSecondCategoryId() {
		return secondCategoryId;
	}

	public void setSecondCategoryId(long secondCategoryId) {
		this.secondCategoryId = secondCategoryId;
	}

	public long getThirdCategoryId() {
		return thirdCategoryId;
	}

	public void setThirdCategoryId(long thirdCategoryId) {
		this.thirdCategoryId = thirdCategoryId;
	}

	public long getBrandId() {
		return brandId;
	}

	public void setBrandId(long brandId) {
		this.brandId = brandId;
	}

	public BigDecimal getProductPrice() {
		return productPrice;
	}

	public void setProductPrice(BigDecimal productPrice) {
		this.productPrice = productPrice;
	}

	public BigDecimal getOriginalPrice() {
		return originalPrice;
	}

	public void setOriginalPrice(BigDecimal originalPrice) {
		this.originalPrice = originalPrice;
	}

	public int getTariffType() {
		return tariffType;
	}

	public void setTariffType(int tariffType) {
		this.tariffType = tariffType;
	}

	public LogisticsTypeEnum getLogisticsType() {
		return logisticsType;
	}

	public void setLogisticsType(LogisticsTypeEnum logisticsType) {
		this.logisticsType = logisticsType;
	}

	public BondedAreaEnum getBondedArea() {
		return bondedArea;
	}

	public void setBondedArea(BondedAreaEnum bondedArea) {
		this.bondedArea = bondedArea;
	}

	public ProductRefundChannelEnum getProductRefundChannel() {
		return productRefundChannel;
	}

	public void setProductRefundChannel(
			ProductRefundChannelEnum productRefundChannel) {
		this.productRefundChannel = productRefundChannel;
	}

	public ActivityVo getActivity() {
		return activity;
	}

	public void setActivity(ActivityVo activity) {
		this.activity = activity;
	}

	public PriceTypeEnum getPriceType() {
		return priceType;
	}

	public void setPriceType(PriceTypeEnum priceType) {
		this.priceType = priceType;
	}

	public SalesTypeEnum getSalesType() {
		return salesType;
	}

	public void setSalesType(SalesTypeEnum salesType) {
		this.salesType = salesType;
	}

	public boolean isFreightFree() {
		return freightFree;
	}

	public void setFreightFree(boolean freightFree) {
		this.freightFree = freightFree;
	}

	public boolean isSupportsRtnWithoutReason() {
		return supportsRtnWithoutReason;
	}

	public void setSupportsRtnWithoutReason(boolean supportsRtnWithoutReason) {
		this.supportsRtnWithoutReason = supportsRtnWithoutReason;
	}

	public boolean isPreSale() {
		return preSale;
	}

	public void setPreSale(boolean preSale) {
		this.preSale = preSale;
	}

	public String getProductVer() {
		return productVer;
	}

	public void setProductVer(String productVer) {
		this.productVer = productVer;
	}

	public boolean isPspProduct() {
		return pspProduct;
	}

	public void setPspProduct(boolean pspProduct) {
		this.pspProduct = pspProduct;
	}

	public BigDecimal getFreight() {
		return freight;
	}

	public void setFreight(BigDecimal freight) {
		this.freight = freight;
	}

	public boolean isSubProduct() {
		return subProduct;
	}

	public void setSubProduct(boolean subProduct) {
		this.subProduct = subProduct;
	}

	public String getPictureUrl() {
		return pictureUrl;
	}

	public void setPictureUrl(String pictureUrl) {
		this.pictureUrl = pictureUrl;
	}

	public String getProperty() {
		return property;
	}

	public void setProperty(String property) {
		this.property = property;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public String getSku() {
		return sku;
	}

	public void setSku(String sku) {
		this.sku = sku;
	}

	public String getProductRecordNo() {
		return productRecordNo;
	}

	public void setProductRecordNo(String productRecordNo) {
		this.productRecordNo = productRecordNo;
	}
}
